package com.zzxz.practicaltrainingsys.service;

import com.zzxz.practicaltrainingsys.entity.ChatRecord;
import java.util.List;

public interface ChatManageService {

    /**
     * 获取所有聊天记录
     * @return 聊天记录列表
     */
    List<ChatRecord> getAllChatRecords();

    /**
     * 根据邀请码获取群聊消息
     * @param inviteCode 邀请码
     * @return 群聊消息列表
     */
    List<ChatRecord> getGroupMessages(String inviteCode);

    /**
     * 删除单条聊天记录
     * @param id 聊天记录ID
     * @return 删除结果（1-成功，0-失败）
     */
    int deleteChatRecord(Long id);

    /**
     * 批量删除聊天记录
     * @param ids 聊天记录ID列表
     * @return 删除的记录数
     */
    int batchDeleteChatRecords(List<Long> ids);

    /**
     * 删除整个群聊
     * @param inviteCode 邀请码
     * @return 删除的记录数
     */
    int deleteGroupChat(String inviteCode);

    /**
     * 清理历史消息
     * @param days 清理多少天前的消息
     * @return 清理的记录数
     */
    int clearOldMessages(int days);

    /**
     * 保存聊天记录
     * @param chatRecord 聊天记录
     * @return 保存结果（1-成功，0-失败）
     */
    int saveChatRecord(ChatRecord chatRecord);

    /**
     * 根据条件查询聊天记录
     * @param userType 用户类型
     * @param chatType 聊天类型
     * @param username 用户名
     * @param inviteCode 邀请码
     * @param keyword 关键词
     * @return 符合条件的聊天记录列表
     */
    List<ChatRecord> searchChatRecords(String userType, String chatType,
                                       String username, String inviteCode, String keyword);

    /**
     * 根据ID获取聊天记录
     * @param id 聊天记录ID
     * @return 聊天记录
     */
    ChatRecord getChatRecordById(Long id);
}